The streaming of media, particularly the streaming of on-demand video, can account for a significant portion of Internet traffic. For example, it has been reported that movies streamed by the on-demand movie service NetFlix® consumed 20% of all Internet traffic in the United States between the hours of 6:00 PM and 9:00 PM during the third quarter of 2010. It is believed that the 20 most popular movies account for more than half of all on-demand daily movie views.
One approach taken by content providers to reduce media streaming bandwidth is to reduce the physical distance that the content travels. To this end, content providers have placed content in multiple physical locations. However, this approach does not reduce network load at the local loop or Internet Service Provider (ISP) segments and can be financially expensive as content libraries grow.
Multicast technologies have been used to stream media from a single source to multiple destinations. Multicast technologies enable the general delivery of content, however, they do not account for the internal structure of content being sent or the environment of applications sending or receiving the content.
Existing multicast technologies include IP (Internet Protocol) multicast, peer-to-peer network protocols, XCAST (Explicit Multi-Unicast), ATM (Asynchronous Transfer Mode) and IRC (Internet Relay Chat). IP multicast provides a single content stream to network switches and routers with a fan-out close to consumers of the content. IP multicast is typically implemented at the IP routing level attempting to route datagrams efficiently. The server sends a data packet once and does not know the number of receivers. User Datagram Protocol (UDP) is one example of a transport protocol used as part of an IP multicast protocol. XCAST is capable of supporting a few hundred clients at a time. Peer-to-peer networks employ a number of different designs for transferring files and take advantage of being able to deliver packets out of order to reduce bandwidth consumption. Other multicast protocols include Ethernet multicasting, P2MP (Point to Multipoint) virtual circuits and Infiniband multicast.